Skip to main content

Running Supernova

Install Supernova

Install Build Tools

Install Make and gcc. In Ubuntu:

sudo apt-get update
sudo apt-get install -y make gcc

Install Golang

Installing the Supernova node requires a version of Go 1.18 or higher. We recommend that you refer to the official documentation for accurate installation of the Go language. In this example, the below script installs the go 1.18.2 version for a simple installation.

curl -OL https://golang.org/dl/go1.18.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xvf go1.18.2.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin

You can verify that the Go language has been successfully installed to the desired version by using the following command:

go version

Install Supernova Binary

In this step, we will install the Supernova binary. First, you must get the last released version to install the latest version of novad.

git clone -b <latest-release-tag> git@github.com:carina-labs/nova.git
cd nova && make install

Once you have installed the Supernova binary, verify that you have installed the correct version using the following command:

novad version –long

Join Mainnet

This chapter describes how to participate in the Gamma network, the Supernova main network. You should have installed the Supernova binary to perform and understand this step.

Hardware Requirements

TypeRAMStorage
Validator16GB500GB-2TB
Full Node16GB2TB
Default Node16GB1TB

Configuration

The correct configuration is required for the nodes to participate in the mainnet successfully. It requires developers to download a normal Gamma-1 Genesis file and run novad.

Chain Initialization

To initialize Novad, name the desired node as the moniker. Explorer and other nodes will also identify your node into the moniker.

novad init <moniker>

Install Genesis File

Download the appropriate Genesis file for your Gamma-1 network to the /config folder.

wget https://github.com/carina-labs/mainnet/raw/master/genesis.gamma-1.json.gz
gzip -d genesis.gamma-1.json.gz
mv genesis.gamma-1.json ~/.novad/config/genesis.json

Set Seed/peers Node

If you want to set up specific seed or permanent peer nodes, you must modify ~/.novad/config/config.toml. Please refer to the following link for the published seed and peer list.

🔗 TBD

seeds =<seed_node_id_1>@<seed_node_address_1>:26656,<seed_node_id_2>@<seed_node_address_2>:26656”

Persistent_peers =<peer_node_id_1>@<peer_node>address_1>:26656,<peer_node_id_2>@<peer_node_address_2>:26656”

Set Nova Service

Nova is registered as a service and always works in the background. You can start nova node using novad start, but we highly recommend using background service.

sudo tee /etc/systemd/system/nova.service > /dev/null <<EOF  
[Unit]
Description=Supernova Daemon
After=network-online.target

[Service]
User=$USER
ExecStart=$(which novad) start
Restart=always
RestartSec=3
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
EOF

After set up daemon service, we can start daemon.

sudo systemctl daemon-reload
sudo systemctl enable novad
sudo systemctl start novad

Check the logs,

journalctl -u novad -f

Set Cosmovisor (Optional)

Cosmvisor makes managing Nova services easier. For example, you might want to automatically update the version of Nova at a specific block height.

Cosmvisor installation is not required, but it is highly recommended for Cosmos-SDK-based blockchain maintenance.

Install Cosmovisor

Use the command below to install the Cosmovisor:

go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@^1.0.0

Create the following folders in the path where Nova is installed:

mkdir -p ~/.novad/cosmovisor
mkdir -p ~/.novad/cosmovisor/genesis
mkdir -p ~/.novad/cosmovisor/genesis/bin
mkdir -p ~/.novad/cosmovisor/upgrades

Set the environment variable:

touch ~/.profile
export DAEMON_NAME=novad
export DAEMON_HOME=$HOME/.novad
export DAEMON_ALLOW_DOWNLOAD_BINARIES=false
export DAEMON_LOG_BUFFER_SIZE=512
export DAEMON_RESTART_AFTER_UPGRADE=true
export UNSAFE_SKIP_BACKUP=true
source ~/.profile

Copy the Supernova binary into the Cosmovisor's genesis:

cp $GOPATH/bin/novad ~/.novad/cosmovisor/genesis/bin

To verify that the configuration has been successfully completed, verify that the output of both commands is the same version of the Supernova binary.

cosmovisor version
novad version

If these 2 version are same, setup cosmovisor service.

sudo tee /etc/systemd/system/cosmovisor.service > /dev/null <<EOF  
[Unit]
Description=Cosmovisor Daemon
After=network-online.target

[Service]
User=$USER
ExecStart=$(which cosmovisor) run start
Restart=always
RestartSec=3
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
EOF

Next, we are going to start cosmovisor daemon,

sudo systemctl dammon-reload
sudo systemctl enable cosmovisor
sudo systemctl start cosmovisor

And check logs,

journalctl -u cosmovisor -f

Join Champagne Testnet

This chapter describes how to participate in the Champagne network, the Supernova test network.

Install chain with champagne network

git clone -b incentive_testnet git@github.com:carina-labs/nova.git
make install

Once you have installed the Supernova binary, verify that you have installed the correct version using the following command:

novad version --long

and it should be like,

champagne-{version}

Add Champagne seed & persistent peers

TBD

Install Genesis File

Download the appropriate Genesis file for your Champagne network.

wget https://github.com/Carina-labs/champagne/raw/main/champagne/genesis.json
mv genesis.json ~/.novad/config/genesis/json

Create Validator

If you want to participate as a validator, please use CreateValidator transaction. You should staking at least 1 NOVA, you can get NOVA token using faucet.

novad tx staking create-validator \
--amount 1000000unova \
--chain-id=champagne \
--moniker=< your_node_moniker > \
--website="your website" \
--details="Joining Champagne network" \
--commission-rate="0.1" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--identity=< if_you_have, you_can_enter_keybase_identity_optional > \
--from < validator_key_name > \
--gas-prices 0.025unova \
--keyring-backend < keyring_name > \
--pubkey=$(novad tendermint show-validator)

Set service or cosmovisor

You can refer mainnet guide

Test chain tendermint RPC

If you want to setup your development environment or relayers, you can use following rpc addresses.

#RPC addresses
NOVAhttps://champagne-tendermint.dev-supernova.xyz
http://champagne.dev-supernova.xyz:26657
Stub-cosmoshttps://champagne-cosmos-tendermint.dev-supernova.xyz
http://champagne-cosmos.dev-supernova.xyz:26657
Stub-osmosishttps://champagne-osmosis-tendermint.dev-supernova.xyz
http://champagne-osmosis.dev-supernova.xyz:26657
Stub-junohttps://champagne-juno-tendermint.dev-supernova.xyz
http://champagne-juno.dev-supernova.xyz:26657